home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD001b.dsk / SUPER.RAT.bas < prev    next >
BASIC Source File  |  2003-06-12  |  3KB  |  83 lines

  1. 1  REM  SUPER.RAT   READS APPLE TEXT 
  2. 10 D$ =  CHR$(4):Z = 0:W = 1:BF = 256:SB = 255:RL = Z:RN = Z:PH = Z
  3. 15  PRINT D$"CLOSE": PRINT D$"PR#0"
  4. 20 HM =  PEEK(115) +256 * PEEK(116)
  5. 21  HOME : VTAB 3: PRINT "SUPER.RAT READS APPLE TEXT FILES"
  6. 23  PRINT : PRINT "IT'S OK TO HIT RESET ANYTIME."
  7. 24  PRINT : PRINT "IF YOU ENTER THE NAME OF A FILE"
  8. 25  PRINT "THAT DOES NOT EXIST ---": PRINT 
  9. 26  HTAB 10: PRINT "SUPER.RAT CREATES AN EMPTY"
  10. 27  HTAB 10: PRINT "FILE BY THAT NAME"
  11. 28  PRINT : PRINT "IT'S UP TO YOU TO DELETE IT."
  12. 30  PRINT : INPUT "ENTER FILE NAME ";NF$: PRINT 
  13. 31  INPUT "S=SEQUENTIAL  R=RANDOM (S OR R)? ";R$: PRINT 
  14. 32  IF R$ = "S" GOTO 500
  15. 33  IF R$ = "R" GOTO 35
  16. 34  VTAB ( PEEK(37)): CALL  -868: GOTO 31
  17. 35  INPUT "DO YOU KNOW RECORD LENGTH (Y OR N)? ";R$
  18. 36  IF R$ = "N" GOTO 50
  19. 37  IF R$ = "Y" GOTO 40
  20. 38  VTAB ( PEEK(37)): CALL  -868: GOTO 35
  21. 40  PRINT 
  22. 41  INPUT "ENTER RECORD LENGTH ";RL
  23. 42 RL =  INT( ABS(RL)): PRINT : GOTO 311
  24. 50  HOME : VTAB 8: PRINT "PARDON ME WHILE I DETERMINE REC LENGTH": PRINT : PRINT "IF YOUR ZERO RECORD IS FULL"
  25. 51  PRINT "         OR": PRINT "RECORD NUMBER ONE IS EMPTY": PRINT : PRINT "      SUPER.RAT COMES UP WITH THE WRONG": HTAB 25: PRINT "RECORD LENGTH."
  26. 52  PRINT : PRINT "RESET ME IF I SEEM TO BE IN A LOOP"
  27. 60  PRINT D$"OPEN "NF$",L256"
  28. 62  FOR I = W TO BF: POKE HM -W +I,Z: NEXT 
  29. 64  PRINT D$"READ "NF$",R"RN
  30. 70  ONERR  GOTO 1000
  31. 75 ES = Z
  32. 80  IF ES = Z  THEN  INPUT A$
  33. 90  POKE 216,Z:BL = Z
  34. 95  IF PH = 1 GOTO 200
  35. 110  IF  PEEK(HM +BL) = Z GOTO 195
  36. 120 BL = BL +W: IF BL >SB GOTO 150
  37. 140  GOTO 110
  38. 150 RL = RL +BF:RN = RN +W: GOTO 60
  39. 195 PH = W
  40. 200  IF  PEEK(HM +BL) < >Z GOTO 310
  41. 210 BL = BL +W: IF BL >SB GOTO 150
  42. 230  GOTO 200
  43. 310 RL = RL +BL: PRINT : PRINT : PRINT "REC LENGTH = ";RL:RN =  -W: PRINT D$"CLOSE": PRINT 
  44. 311 RN = Z: INPUT "WANT TO START AT RECORD ZERO (Y OR N)? ";R$
  45. 312  IF R$ = "Y" GOTO 316
  46. 313  IF R$ = "N" GOTO 315
  47. 314  VTAB ( PEEK(37)): CALL  -868: GOTO 311
  48. 315  PRINT : INPUT "ENTER STARTING RECORD NUMBER ";RN
  49. 316 RN =  INT( ABS(RN)) -W: PRINT 
  50. 317  INPUT "P=PRINTER  S=SCREEN  (P OR S)? ";PS$
  51. 318  IF PS$ = "S" GOTO 325
  52. 319  IF PS$ = "P" GOTO 321
  53. 320  VTAB ( PEEK(37)): CALL  -868: GOTO 317
  54. 321  PRINT D$"PR#1": PRINT 
  55. 325  HOME : PRINT NF$;"   REC LENGTH = ";RL: PRINT "====================="
  56. 330  PRINT D$"OPEN "NF$",L"RL
  57. 335 RN = RN +W: PRINT "---- REC NBR ";RN;
  58. 336  IF PS$ = "S" GOTO 338
  59. 337  PRINT : GOTO 350
  60. 338  INPUT "   HIT RETURN OR RESET";R$
  61. 350  PRINT D$"READ "NF$",R"RN:BR = Z
  62. 360  ONERR  GOTO 1000
  63. 365 ES = Z
  64. 370  IF ES = Z  THEN  INPUT A$
  65. 380  IF ES = W GOTO 330
  66. 385  INVERSE : PRINT A$: NORMAL 
  67. 390 BR = BR + LEN(A$) +W: IF BR <RL GOTO 370
  68. 400  GOTO 335
  69. 500  PRINT D$"OPEN "NF$
  70. 520  PRINT 
  71. 530  INPUT "P=PRINTER S=SCREEN (P OR S)? ";PS$
  72. 540  IF PS$ = "S" GOTO 575
  73. 550  IF PS$ = "P" GOTO 570
  74. 560  VTAB ( PEEK(37)): CALL  -868: GOTO 530
  75. 570  PRINT D$"PR#1": PRINT 
  76. 575  HOME : PRINT NF$: PRINT "================"
  77. 590  PRINT D$"READ "NF$: ONERR  GOTO 8999
  78. 600  INPUT A$: INVERSE : PRINT A$: NORMAL : GOTO 600
  79. 1000  IF  PEEK(222) < >5 GOTO 9000
  80. 1010 ES = W: RESUME 
  81. 8999  IF  PEEK(222) = 5 GOTO 9500
  82. 9000  PRINT "ERR NBR "; PEEK(222)
  83. 9500  PRINT D$"CLOSE": PRINT D$"PR#0": END